<!doctype html><html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>2 多对多</title>
  <meta name="generator" content="CherryTree">
  <link rel="stylesheet" href="styles.css" type="text/css" />
</head>
<body><div class="main"><div class="tree">
<p><strong>Index</strong></p>
<p><a href="笔记本--java--框架--mybatis.html">mybatis</a></p>

<ol>
<li><a href="笔记本--java--框架--mybatis--1_mybatis基本结构搭建.html">1 mybatis基本结构搭建</a></li>
<ol>
<li><a href="笔记本--java--框架--mybatis--1_mybatis基本结构搭建--01_使用idea创建mybatis创建maven基本工程.html">01 使用idea创建mybatis创建maven基本工程</a></li>
<li><a href="笔记本--java--框架--mybatis--1_mybatis基本结构搭建--01_搭建mybatis环境实现基本查询.html">01 搭建mybatis环境实现基本查询</a></li>
<li><a href="笔记本--java--框架--mybatis--1_mybatis基本结构搭建--02_创建mybatis使用数据库.html">02 创建mybatis使用数据库</a></li>
<li><a href="笔记本--java--框架--mybatis--1_mybatis基本结构搭建--03_创建实体类.html">03 创建实体类</a></li>
<li><a href="笔记本--java--框架--mybatis--1_mybatis基本结构搭建--04_创建dao接口.html">04 创建dao接口</a></li>
<li><a href="笔记本--java--框架--mybatis--1_mybatis基本结构搭建--05_创建核心配置文件.html">05 创建核心配置文件</a></li>
<li><a href="笔记本--java--框架--mybatis--1_mybatis基本结构搭建--06_创建映射文件.html">06 创建映射文件</a></li>
<li><a href="笔记本--java--框架--mybatis--1_mybatis基本结构搭建--07_测试.html">07 测试</a></li>
<li><a href="笔记本--java--框架--mybatis--1_mybatis基本结构搭建--附加：mybatis注解开发查所有.html">附加：mybatis注解开发查所有</a></li>
</ol>
<li><a href="笔记本--java--框架--mybatis--2_mybatis的crud.html">2 mybatis的crud</a></li>
<ol>
<li><a href="笔记本--java--框架--mybatis--2_mybatis的crud--1_使用基本的xml配置crud.html">1 使用基本的xml配置crud</a></li>
<li><a href="笔记本--java--框架--mybatis--2_mybatis的crud--2_使用注解方式配置crud.html">2 使用注解方式配置crud</a></li>
<li><a href="笔记本--java--框架--mybatis--2_mybatis的crud--3_模糊查询.html">3 模糊查询</a></li>
</ol>
<li><a href="笔记本--java--框架--mybatis--3_mybatis多表操作.html">3 mybatis多表操作</a></li>
<ol>
<li><a href="笔记本--java--框架--mybatis--3_mybatis多表操作--1_一对一查询，数据库建立.html">1 一对一查询，数据库建立</a></li>
<ol>
<li><a href="笔记本--java--框架--mybatis--3_mybatis多表操作--1_一对一查询，数据库建立--1使用queryVo的方式实现一对一查询.html">1使用queryVo的方式实现一对一查询</a></li>
<li><a href="笔记本--java--框架--mybatis--3_mybatis多表操作--1_一对一查询，数据库建立--2_使用配置resultMap完成一对一查询.html">2 使用配置resultMap完成一对一查询</a></li>
<li><a href="笔记本--java--框架--mybatis--3_mybatis多表操作--1_一对一查询，数据库建立--3_一对多的查询.html">3 一对多的查询</a></li>
</ol>
<li><a href="笔记本--java--框架--mybatis--3_mybatis多表操作--2_多对多.html">2 多对多</a></li>
<ol>
<li><a href="笔记本--java--框架--mybatis--3_mybatis多表操作--2_多对多--1_查询角色的用户信息.html">1 查询角色的用户信息</a></li>
<li><a href="笔记本--java--框架--mybatis--3_mybatis多表操作--2_多对多--2_查询用户的角色信息.html">2 查询用户的角色信息</a></li>
</ol>
</ol>
<li><a href="笔记本--java--框架--mybatis--4_mybatis的注解操作.html">4 mybatis的注解操作</a></li>
<ol>
<li><a href="笔记本--java--框架--mybatis--4_mybatis的注解操作--1_注解的基本实现.html">1 注解的基本实现</a></li>
<li><a href="笔记本--java--框架--mybatis--4_mybatis的注解操作--2_使用注解解决实体类属性名和数据库字段名不一致的问题.html">2 使用注解解决实体类属性名和数据库字段名不一致的问题</a></li>
</ol>
<li><a href="笔记本--java--框架--mybatis--5_mybatis注解实现多表操作.html">5 mybatis注解实现多表操作</a></li>
<ol>
<li><a href="笔记本--java--框架--mybatis--5_mybatis注解实现多表操作--1_注解一对一.html">1 注解一对一</a></li>
<li><a href="笔记本--java--框架--mybatis--5_mybatis注解实现多表操作--2_注解实现一对多拆线呢.html">2 注解实现一对多拆线呢</a></li>
<li><a href="笔记本--java--框架--mybatis--5_mybatis注解实现多表操作--3_mybatis注解缓存开启.html">3 mybatis注解缓存开启</a></li>
</ol></ol></div>
<div class="page"><h1><b><u>2 多对多</u></b></h1><br /><br />角色和用户 （多对多：拆分为一对多，使用中间表作为外键关联）<br />	一个角色对应多个用户<br />	一个用户拥有多种角色<br />	<br />	用户表：<br />	<div class="codebox"><div class="codebox">CREATE&nbsp;TABLE&nbsp;`user`&nbsp;(<br />&nbsp;&nbsp;`id`&nbsp;<span style="color:#80ffbb;font-weight:400">int</span>(<span style="color:#ff0044;font-weight:400">11</span>)&nbsp;NOT&nbsp;NULL&nbsp;auto_increment,<br />&nbsp;&nbsp;`username`&nbsp;varchar(<span style="color:#ff0044;font-weight:400">32</span>)&nbsp;NOT&nbsp;NULL&nbsp;COMMENT&nbsp;'用户名称',<br />&nbsp;&nbsp;`birthday`&nbsp;datetime&nbsp;<span style="color:#ff9d00;font-weight:700">default</span>&nbsp;NULL&nbsp;COMMENT&nbsp;'生日',<br />&nbsp;&nbsp;`sex`&nbsp;<span style="color:#80ffbb;font-weight:400">char</span>(<span style="color:#ff0044;font-weight:400">1</span>)&nbsp;<span style="color:#ff9d00;font-weight:700">default</span>&nbsp;NULL&nbsp;COMMENT&nbsp;'性别',<br />&nbsp;&nbsp;`address`&nbsp;varchar(<span style="color:#ff0044;font-weight:400">256</span>)&nbsp;<span style="color:#ff9d00;font-weight:700">default</span>&nbsp;NULL&nbsp;COMMENT&nbsp;'地址',<br />&nbsp;&nbsp;PRIMARY&nbsp;KEY&nbsp;&nbsp;(`id`)<br />)&nbsp;ENGINE=InnoDB&nbsp;DEFAULT&nbsp;CHARSET=utf8;<br /><br /><br /><br />insert&nbsp;&nbsp;into&nbsp;`user`(`id`,`username`,`birthday`,`sex`,`address`)&nbsp;values&nbsp;(<span style="color:#ff0044;font-weight:400">41</span>,'老王<span style="color:#00117f;font-weight:400">','</span><span style="color:#ff0044;font-weight:400">2018</span>-<span style="color:#ff0044;font-weight:400">02</span>-<span style="color:#ff0044;font-weight:400">27</span>&nbsp;<span style="color:#ff0044;font-weight:400">17</span>:<span style="color:#ff0044;font-weight:400">47</span>:<span style="color:#ff0044;font-weight:400">08</span><span style="color:#00117f;font-weight:400">','</span>男<span style="color:#00117f;font-weight:400">','</span>北京'),(<span style="color:#ff0044;font-weight:400">42</span>,'小二王<span style="color:#00117f;font-weight:400">','</span><span style="color:#ff0044;font-weight:400">2018</span>-<span style="color:#ff0044;font-weight:400">03</span>-<span style="color:#ff0044;font-weight:400">02</span>&nbsp;<span style="color:#ff0044;font-weight:400">15</span>:<span style="color:#ff0044;font-weight:400">09</span>:<span style="color:#ff0044;font-weight:400">37</span><span style="color:#00117f;font-weight:400">','</span>女<span style="color:#00117f;font-weight:400">','</span>北京金燕龙'),(<span style="color:#ff0044;font-weight:400">43</span>,'小二王<span style="color:#00117f;font-weight:400">','</span><span style="color:#ff0044;font-weight:400">2018</span>-<span style="color:#ff0044;font-weight:400">03</span>-<span style="color:#ff0044;font-weight:400">04</span>&nbsp;<span style="color:#ff0044;font-weight:400">11</span>:<span style="color:#ff0044;font-weight:400">34</span>:<span style="color:#ff0044;font-weight:400">34</span><span style="color:#00117f;font-weight:400">','</span>女<span style="color:#00117f;font-weight:400">','</span>北京金燕龙'),(<span style="color:#ff0044;font-weight:400">45</span>,'传智播客<span style="color:#00117f;font-weight:400">','</span><span style="color:#ff0044;font-weight:400">2018</span>-<span style="color:#ff0044;font-weight:400">03</span>-<span style="color:#ff0044;font-weight:400">04</span>&nbsp;<span style="color:#ff0044;font-weight:400">12</span>:<span style="color:#ff0044;font-weight:400">04</span>:<span style="color:#ff0044;font-weight:400">06</span><span style="color:#00117f;font-weight:400">','</span>男<span style="color:#00117f;font-weight:400">','</span>北京金燕龙'),(<span style="color:#ff0044;font-weight:400">46</span>,'老王<span style="color:#00117f;font-weight:400">','</span><span style="color:#ff0044;font-weight:400">2018</span>-<span style="color:#ff0044;font-weight:400">03</span>-<span style="color:#ff0044;font-weight:400">07</span>&nbsp;<span style="color:#ff0044;font-weight:400">17</span>:<span style="color:#ff0044;font-weight:400">37</span>:<span style="color:#ff0044;font-weight:400">26</span><span style="color:#00117f;font-weight:400">','</span>男<span style="color:#00117f;font-weight:400">','</span>北京'),(<span style="color:#ff0044;font-weight:400">48</span>,'小马宝莉<span style="color:#00117f;font-weight:400">','</span><span style="color:#ff0044;font-weight:400">2018</span>-<span style="color:#ff0044;font-weight:400">03</span>-<span style="color:#ff0044;font-weight:400">08</span>&nbsp;<span style="color:#ff0044;font-weight:400">11</span>:<span style="color:#ff0044;font-weight:400">44</span>:<span style="color:#ff0044;font-weight:400">00</span><span style="color:#00117f;font-weight:400">','</span>女<span style="color:#00117f;font-weight:400">','</span>北京修正');<br /></div></div><br />	角色表：<br />	<div class="codebox"><div class="codebox">CREATE&nbsp;TABLE&nbsp;`role`&nbsp;(<br />&nbsp;&nbsp;`ID`&nbsp;<span style="color:#80ffbb;font-weight:400">int</span>(<span style="color:#ff0044;font-weight:400">11</span>)&nbsp;NOT&nbsp;NULL&nbsp;COMMENT&nbsp;'编号',<br />&nbsp;&nbsp;`ROLE_NAME`&nbsp;varchar(<span style="color:#ff0044;font-weight:400">30</span>)&nbsp;<span style="color:#ff9d00;font-weight:700">default</span>&nbsp;NULL&nbsp;COMMENT&nbsp;'角色名称',<br />&nbsp;&nbsp;`ROLE_DESC`&nbsp;varchar(<span style="color:#ff0044;font-weight:400">60</span>)&nbsp;<span style="color:#ff9d00;font-weight:700">default</span>&nbsp;NULL&nbsp;COMMENT&nbsp;'角色描述',<br />&nbsp;&nbsp;PRIMARY&nbsp;KEY&nbsp;&nbsp;(`ID`)<br />)&nbsp;ENGINE=InnoDB&nbsp;DEFAULT&nbsp;CHARSET=utf8;<br /><br /><br /><br />insert&nbsp;&nbsp;into&nbsp;`role`(`ID`,`ROLE_NAME`,`ROLE_DESC`)&nbsp;values&nbsp;(<span style="color:#ff0044;font-weight:400">1</span>,'院长<span style="color:#00117f;font-weight:400">','</span>管理整个学院'),(<span style="color:#ff0044;font-weight:400">2</span>,'总裁<span style="color:#00117f;font-weight:400">','</span>管理整个公司'),(<span style="color:#ff0044;font-weight:400">3</span>,'校长<span style="color:#00117f;font-weight:400">','</span>管理整个学校');<br /></div></div><br />	中间表：使用用户表和角色表的主键在该表上作为外键关联<br />	<div class="codebox"><div class="codebox">CREATE&nbsp;TABLE&nbsp;`user_role`&nbsp;(<br />&nbsp;&nbsp;`UID`&nbsp;<span style="color:#80ffbb;font-weight:400">int</span>(<span style="color:#ff0044;font-weight:400">11</span>)&nbsp;NOT&nbsp;NULL&nbsp;COMMENT&nbsp;'用户编号',<br />&nbsp;&nbsp;`RID`&nbsp;<span style="color:#80ffbb;font-weight:400">int</span>(<span style="color:#ff0044;font-weight:400">11</span>)&nbsp;NOT&nbsp;NULL&nbsp;COMMENT&nbsp;'角色编号',<br />&nbsp;&nbsp;PRIMARY&nbsp;KEY&nbsp;&nbsp;(`UID`,`RID`),<br />&nbsp;&nbsp;KEY&nbsp;`FK_Reference_10`&nbsp;(`RID`),<br />&nbsp;&nbsp;CONSTRAINT&nbsp;`FK_Reference_10`&nbsp;FOREIGN&nbsp;KEY&nbsp;(`RID`)&nbsp;REFERENCES&nbsp;`role`&nbsp;(`ID`),<br />&nbsp;&nbsp;CONSTRAINT&nbsp;`FK_Reference_9`&nbsp;FOREIGN&nbsp;KEY&nbsp;(`UID`)&nbsp;REFERENCES&nbsp;`user`&nbsp;(`id`)<br />)&nbsp;ENGINE=InnoDB&nbsp;DEFAULT&nbsp;CHARSET=utf8;<br /><br />insert&nbsp;&nbsp;into&nbsp;`user_role`(`UID`,`RID`)&nbsp;values&nbsp;(<span style="color:#ff0044;font-weight:400">41</span>,<span style="color:#ff0044;font-weight:400">1</span>),(<span style="color:#ff0044;font-weight:400">45</span>,<span style="color:#ff0044;font-weight:400">1</span>),(<span style="color:#ff0044;font-weight:400">41</span>,<span style="color:#ff0044;font-weight:400">2</span>);</div></div></div></div>
</body></html>